package com.Algorithm;

import java.util.LinkedList;

/**
 * 约瑟夫环问题
 *
 * @author yisl
 * @create 2021-02-10 2:26 下午
 */
public class Cycle {

    /**
     * 约瑟夫环问题
     */
    private static void ring(int n, int m){

        LinkedList<Integer> list = new LinkedList<>();
        for (int i=1;i<=n;i++){
            list.add(i);
        }

        int k = 2;
        int element = 0;
        int i=0;
        for(;i<k;i++){
            element = list.poll();
            list.add(element);
        }
        i=1;
        while(list.size()>0){
            element = list.poll();
            if(i<m){
                list.add(element);
                i++;
            }else{
                i=1;
                System.out.println(element);
            }

        }

    }

    private static void insString(String a, String b){

        int max_len = 0;
        String max_subString = "";
        for(int i=0; i<a.length(); i++){
            for(int j=0; j<b.length(); j++){
                if(a.charAt(i) ==  b.charAt(j)){
                    for(int m=i, n=j; m<a.length()&&n<b.length();m++,n++){
                        if(a.charAt(m) != b.charAt(n)){
                            break;
                        }
                        if(max_len < m-i){
                            max_len = m-i;
                            max_subString = a.substring(i,m+1);
                        }
                    }
                }
            }
        }
        System.out.println(max_subString);

    }

    public static void main(String[] args) {
//        ring(10,5);
        insString("1234568","9876567");
    }
}
